package com.chuzhong.sf.api;

import com.alibaba.fastjson.JSON;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Author 初衷.
 * @Date 2020/10/16
 **/
public class login_api {
        public static void main(String[] args) throws IOException {
                login_api.login("chuzhong","123");
        }
    private static String ip = "http://192.168.0.106:8009";
    public static Map login(String username, String password) throws IOException {
            // 传入参数
            String realUrl = ip+"/user_login?username="+username+"&password="+password;
            URL url = null;
            url = new URL(realUrl);
            HttpURLConnection conn = null;
            conn = (HttpURLConnection) url.openConnection();
            // 在连接之前设置属性
            // Content-Type实体头用于向接收方指示实体的介质类型，指定HEAD方法送到接收方的实体介质类型，或GET方法发送的请求介质类型
            conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
            // 设置打开与此URLConnection引用的资源的通信链接时使用的指定超时值（以毫秒为单位）
            conn.setConnectTimeout(10000);
            // 将读取超时设置为指定的超时时间，以毫秒为单位。
            // conn.setReadTimeout(60000);
            conn.setRequestMethod("GET");
            // Post 请求不能使用缓存
            conn.setUseCaches(false);
            // 建立连接
            conn.connect();
            // 获取响应
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            String result = "";
            while ((line = reader.readLine()) != null) {
                result += line;
            }
            reader.close();
            conn.disconnect();
            Map mapTypes = JSON.parseObject(result);
            Map data = null;
            if(mapTypes.get("code").equals("200")){
                    data = (Map) mapTypes.get("data");
            }
            System.out.println(data);
            return data;
    }
        public static List<Map> queryuserInfo(Integer id) throws IOException {
                // 传入参数
                String realUrl = ip+"/queryuserInfo?uid="+id;
                URL url = null;
                url = new URL(realUrl);
                HttpURLConnection conn = null;
                conn = (HttpURLConnection) url.openConnection();
                // 在连接之前设置属性
                // Content-Type实体头用于向接收方指示实体的介质类型，指定HEAD方法送到接收方的实体介质类型，或GET方法发送的请求介质类型
                conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
                // 设置打开与此URLConnection引用的资源的通信链接时使用的指定超时值（以毫秒为单位）
                conn.setConnectTimeout(10000);
                // 将读取超时设置为指定的超时时间，以毫秒为单位。
                // conn.setReadTimeout(60000);
                conn.setRequestMethod("GET");
                // Post 请求不能使用缓存
                conn.setUseCaches(false);
                // 建立连接
                conn.connect();
                // 获取响应
                BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                String line;
                String result = "";
                while ((line = reader.readLine()) != null) {
                        result += line;
                }
                reader.close();
                conn.disconnect();
                Map mapTypes = JSON.parseObject(result);//将获取到的数据转换为map
                List<Map> data1 = null;

                if(mapTypes.get("code").equals("200")){
                        data1 = (List<Map>) mapTypes.get("data");
                }
                System.out.println(data1);
                return data1;
        }

        public static String update_user_password(String username,String password) throws IOException {
                // 传入参数
                String realUrl = ip+"/update_user_password?username="+username+"&password="+password;
                URL url = null;
                url = new URL(realUrl);
                HttpURLConnection conn = null;
                conn = (HttpURLConnection) url.openConnection();
                // 在连接之前设置属性
                // Content-Type实体头用于向接收方指示实体的介质类型，指定HEAD方法送到接收方的实体介质类型，或GET方法发送的请求介质类型
                conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
                // 设置打开与此URLConnection引用的资源的通信链接时使用的指定超时值（以毫秒为单位）
                conn.setConnectTimeout(10000);
                // 将读取超时设置为指定的超时时间，以毫秒为单位。
                // conn.setReadTimeout(60000);
                conn.setRequestMethod("GET");
                // Post 请求不能使用缓存
                conn.setUseCaches(false);
                // 建立连接
                conn.connect();
                // 获取响应
                BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                String line;
                String result = "";
                while ((line = reader.readLine()) != null) {
                        result += line;
                }
                reader.close();
                conn.disconnect();
                Map jsonObject = JSON.parseObject(result);
                Object data =  jsonObject.get("data");
                return String.valueOf(data);
        }

        public static List<Map> queryuserInfo_m(Integer id) throws IOException {
                // 传入参数
                String realUrl = ip+"/queryuserInfo_m?uid="+id;
                URL url = null;
                url = new URL(realUrl);
                HttpURLConnection conn = null;
                conn = (HttpURLConnection) url.openConnection();
                // 在连接之前设置属性
                // Content-Type实体头用于向接收方指示实体的介质类型，指定HEAD方法送到接收方的实体介质类型，或GET方法发送的请求介质类型
                conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
                // 设置打开与此URLConnection引用的资源的通信链接时使用的指定超时值（以毫秒为单位）
                conn.setConnectTimeout(10000);
                // 将读取超时设置为指定的超时时间，以毫秒为单位。
                // conn.setReadTimeout(60000);
                conn.setRequestMethod("GET");
                // Post 请求不能使用缓存
                conn.setUseCaches(false);
                // 建立连接
                conn.connect();
                // 获取响应
                BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                String line;
                String result = "";
                while ((line = reader.readLine()) != null) {
                        result += line;
                }
                reader.close();
                conn.disconnect();
                Map mapTypes = JSON.parseObject(result);//将获取到的数据转换为map
                List<Map> data1 = null;

                if(mapTypes.get("code").equals("200")){
                        data1 = (List<Map>) mapTypes.get("data");
                }
                System.out.println(data1);
                return data1;
        }

        public static List<Map> queryuserInfo_get_time(Integer id,String time) throws IOException {
                // 传入参数
                String realUrl = ip+"/queryuserInfo_get_time?uid="+id+"&time="+time;
                URL url = null;
                url = new URL(realUrl);
                HttpURLConnection conn = null;
                conn = (HttpURLConnection) url.openConnection();
                // 在连接之前设置属性
                // Content-Type实体头用于向接收方指示实体的介质类型，指定HEAD方法送到接收方的实体介质类型，或GET方法发送的请求介质类型
                conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
                // 设置打开与此URLConnection引用的资源的通信链接时使用的指定超时值（以毫秒为单位）
                conn.setConnectTimeout(10000);
                // 将读取超时设置为指定的超时时间，以毫秒为单位。
                // conn.setReadTimeout(60000);
                conn.setRequestMethod("GET");
                // Post 请求不能使用缓存
                conn.setUseCaches(false);
                // 建立连接
                conn.connect();
                // 获取响应
                BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                String line;
                String result = "";
                while ((line = reader.readLine()) != null) {
                        result += line;
                }
                reader.close();
                conn.disconnect();
                Map mapTypes = JSON.parseObject(result);//将获取到的数据转换为map
                List<Map> data1 = null;

                if(mapTypes.get("code").equals("200")){
                        data1 = (List<Map>) mapTypes.get("data");
                }
                System.out.println(data1);
                return data1;
        }
}
